// 观察者
class Watcher {
  constructor(vm, key, cb) {
    this.vm = vm
    this.key = key
    this.cb = cb // 回调函数

    Dep.target = this // 把 watcher 对象添加到 dep 中
    this.oldVal = vm[key]
    Dep.target = null
  }

  // 更新视图
  update() {
    const newVal = this.vm[this.key]
    if (this.oldVal === newVal) return
    this.cb(newVal)
  }
}